﻿
using System.Windows;
using TotalApplication.AngelSix;
using TotalApplication.AngelSix.views;
using TotalApplication.C__Comic.fileStream;
using TotalApplication.Core;
using TotalApplication.Mine_Video;
using TotalApplication.viewmodels.Video;
using TotalApplication.views;
using TotalApplication.views.Video;

namespace TotalApplication
{

    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            // Set up the main application
            ApplicationSetup();

            IoC.Logger.Log("Application starting up...");

            TestWindow04();

        }

        /// <summary>
        /// COnfigure the application to ready for use
        /// </summary>
        /// <exception cref="NotImplementedException"></exception>
        private void ApplicationSetup()
        {
            // Set up the Ioc container
            IoC.Setup();

            // Binding the UI manager
            IoC.Kernel.Bind<IUManager>().ToConstant(new UIManager());

            // Binding the logging factory
            IoC.Kernel.Bind<ILogFactory>().ToConstant(new BaseLogFactory());




            // Set up the video module view models
            VideoPathHelpers.LoadTags();
        }

        /// <summary>
        /// C#_Comic FileStream Test
        /// </summary>
        private void TestFileStreamRV()
        {
            Current.MainWindow = new AplyWindow();
            Current.MainWindow.Show();
        }

        /// <summary>
        /// MainViews Tests Test
        /// </summary>
        private void TestMain_Tests()
        {
            Current.MainWindow = new Tests();
            Current.MainWindow.Show();
        }

        /// <summary>
        /// MainViews Tests TestMainWindow
        /// </summary>
        private void TestMainWindow()
        {
            Current.MainWindow = new MainWindow();
            Current.MainWindow.Show();
        }

        /// <summary>
        /// AngelSix TreeViews Test
        /// </summary>
        private void TestTreeViews()
        {
            Current.MainWindow = new TreeVIews();
            Current.MainWindow.Show();
        }

        /// <summary>
        /// AngelSix Window04 Test
        /// </summary>
        private void TestWindow04()
        {
            //Current.MainWindow = new Window04();
            Current.MainWindow = new VideoMain();
            Current.MainWindow.Show();
        }
    }

}
